package es.ats.codington.festival.interfaces.services;

import java.sql.SQLException;
import java.util.List;

import es.ats.codington.festival.domain.Event;
import es.ats.codington.festival.domain.EventSignUp;

public interface IEventSignUpService {

	/**
	 * 
	 * @param e
	 * @return
	 * @throws SQLException
	 */
	
	public int registerVisitorForNewEvent(EventSignUp e) throws SQLException;
	
	/**
	 * 
	 * @param e
	 * @return
	 * @throws SQLException
	 */
	
	public boolean checkEventsofVisitor(EventSignUp e) throws SQLException;
	
	/**
	 * 
	 * @param e
	 * @return
	 * @throws SQLException
	 */
	
	public int unregisterVisitorForEvent(EventSignUp e) throws SQLException;
	
	/**
	 * 
	 * @param e
	 * @return
	 * @throws SQLException
	 */
	
	public List<Event> viewEventsOfUser(EventSignUp e) throws SQLException;
	
	/**
	 * 
	 * @param e
	 * @return
	 * @throws SQLException
	 */
	public boolean updateMinusSeatsAvailableEvent(EventSignUp e) throws SQLException;
	
	/**
	 * 
	 * @param e
	 * @return
	 * @throws SQLException
	 */
	public boolean updateSumSeatsAvailableEvent(EventSignUp e) throws SQLException;
	
	/**
	 * 
	 * @param e
	 * @return
	 * @throws SQLException
	 */
	public boolean checkSeatsAvailable(EventSignUp e) throws SQLException;
	
	/**
	 * 
	 * @param idEvent
	 * @return
	 * @throws SQLException
	 * @throws ClassNotFoundException
	 */
	public boolean unregisterAllVisitorforEvent(int idEvent) throws SQLException, ClassNotFoundException;
	
	
}
